/**
 * 定时任务配置文件
 * 支持标准的cron表达式格式
 * 
 * Cron表达式格式: 秒 分 时 日 月 周
 * 字段说明:
 * - 秒: 0-59
 * - 分: 0-59  
 * - 时: 0-23
 * - 日: 1-31
 * - 月: 1-12
 * - 周: 0-7 (0和7都表示周日)
 * 
 * 特殊字符:
 * - * : 表示任意值
 * - / : 表示间隔 (如: * / 5 表示每5个单位)
 * - - : 表示范围 (如: 9-17 表示9点到17点)
 * - , : 表示多个值 (如: 1,3,5 表示1、3、5)
 * - ? : 表示不指定值 (仅用于日和周字段)
 * - L : 表示最后一天 (仅用于日和周字段)
 * - W : 表示工作日 (仅用于日字段)
 * - # : 表示第几个周几 (仅用于周字段，如: 6#3 表示第三个周五)
 */

module.exports = {
  // 数据同步任务配置
  dataSync: {
    schedule: '*/1 * * * *', // 每1分钟执行一次
    timezone: 'Asia/Shanghai',
    description: '定时数据同步任务',
    enabled: true,
    retryCount: 3,
    retryDelay: 5000, // 5秒
    timeout: 300000, // 5分钟
    tables: ['stocks', 'news', 'market_data', 'user_data'],
    incremental: true
  },

  // 缓存刷新任务配置
  cacheRefresh: {
    schedule: '*/30 * * * *', // 每30分钟执行一次
    timezone: 'Asia/Shanghai',
    description: '定时缓存刷新任务',
    enabled: true,
    retryCount: 2,
    retryDelay: 3000, // 3秒
    timeout: 120000, // 2分钟
    keys: ['stock_data', 'market_data', 'news_cache', 'user_cache'],
    force: false
  },

  // 健康检查任务配置
  healthCheck: {
    schedule: '*/15 * * * *', // 每15分钟执行一次
    timezone: 'Asia/Shanghai',
    description: '定时健康检查任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 1000, // 1秒
    timeout: 60000, // 1分钟
    detailed: true,
    includeMetrics: true
  },

  // 市场数据更新任务配置
  marketDataUpdate: {
    schedule: '*/5 9-15 * * 1-5', // 交易时间内每5分钟执行一次
    timezone: 'Asia/Shanghai',
    description: '定时市场数据更新任务',
    enabled: true,
    retryCount: 2,
    retryDelay: 2000, // 2秒
    timeout: 180000, // 3分钟
    indices: ['SH000001', 'SZ399001', 'SZ399006'],
    source: 'default'
  },

  // 系统维护任务配置
  systemMaintenance: {
    schedule: '0 2 * * *', // 每天凌晨2点执行
    timezone: 'Asia/Shanghai',
    description: '定时系统维护任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 5000, // 5秒
    timeout: 600000, // 10分钟
    type: 'routine',
    duration: 300,
    description: '每日系统维护'
  },

  // 日志清理任务配置
  logCleanup: {
    schedule: '0 3 * * 0', // 每周日凌晨3点执行
    timezone: 'Asia/Shanghai',
    description: '定时日志清理任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 1000, // 1秒
    timeout: 300000, // 5分钟
    retentionDays: 30,
    logTypes: ['combined', 'error', 'http', 'exceptions', 'rejections']
  },

  // 数据备份任务配置
  dataBackup: {
    schedule: '0 4 * * *', // 每天凌晨4点执行
    timezone: 'Asia/Shanghai',
    description: '定时数据备份任务',
    enabled: true,
    retryCount: 2,
    retryDelay: 10000, // 10秒
    timeout: 1800000, // 30分钟
    backupType: 'full',
    compression: true,
    encryption: false
  },

  // 股票数据分析任务配置
  stockAnalysis: {
    schedule: '0 6 * * 1-5', // 工作日早上6点执行
    timezone: 'Asia/Shanghai',
    description: '定时股票数据分析任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 5000, // 5秒
    timeout: 900000, // 15分钟
    analysisTypes: ['trend', 'pattern', 'risk', 'opportunity']
  },

  // 新闻聚合任务配置
  newsAggregation: {
    schedule: '*/20 * * * *', // 每20分钟执行一次
    timezone: 'Asia/Shanghai',
    description: '定时新闻聚合任务',
    enabled: true,
    retryCount: 2,
    retryDelay: 3000, // 3秒
    timeout: 120000, // 2分钟
    sources: ['financial', 'economic', 'political', 'social'],
    keywords: ['股票', '基金', '投资', '经济', '政策']
  },

  // 用户通知任务配置
  userNotification: {
    schedule: '0 8,12,18 * * 1-5', // 工作日8点、12点、18点执行
    timezone: 'Asia/Shanghai',
    description: '定时用户通知任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 2000, // 2秒
    timeout: 300000, // 5分钟
    notificationTypes: ['market_update', 'price_alert', 'news_summary', 'system_status']
  },

  // 性能监控任务配置
  performanceMonitoring: {
    schedule: '*/10 * * * *', // 每10分钟执行一次
    timezone: 'Asia/Shanghai',
    description: '定时性能监控任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 1000, // 1秒
    timeout: 60000, // 1分钟
    metrics: ['cpu', 'memory', 'disk', 'network', 'response_time']
  },

  // 安全扫描任务配置
  securityScan: {
    schedule: '0 1 * * *', // 每天凌晨1点执行
    timezone: 'Asia/Shanghai',
    description: '定时安全扫描任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 5000, // 5秒
    timeout: 900000, // 15分钟
    scanTypes: ['vulnerability', 'malware', 'intrusion', 'compliance']
  },

  // 数据统计任务配置
  dataStatistics: {
    schedule: '0 5 * * *', // 每天凌晨5点执行
    timezone: 'Asia/Shanghai',
    description: '定时数据统计任务',
    enabled: true,
    retryCount: 1,
    retryDelay: 3000, // 3秒
    timeout: 600000, // 10分钟
    statistics: ['daily', 'weekly', 'monthly', 'quarterly', 'yearly']
  }
};
